How the Extensions Manager
Interacts With Your Extension
The Extensions Manager 4.0 disables and enables
extensions as past versions did by moving the disabled
extensions to various folders inside the current System
Folder with the string "(Disabled)" appended to the source
folders' name. It enables extensions by moving from the
disabled folder to their appropriate folder.
This movement of extensions between the active folders
and the disabled folders brings up a warning for developers
of extensions.
WARNING:
As a developer, you need to make sure that your
extension or control panel functions correctly when it is
installed (i.e., its code ran at boot time), but it is no
longer in the same folder it was at boot time. For example,
your control panel was in the Control Panels folder and now
it is in the Control Panels (Disabled) folder. Also, make
sure that it functions correctly when it was not run at boot
time, i.e., it's not installed, but it is now in the Control
Panels or Extensions folder, meaning that it will run at
next boot. For example, a control panel might put up an
alert when opened in this case, saying that changing its
settings will have no effect until the Macintosh has been
restarted.
|
Package Handling
Beyond the new look, the second area of improvement is
the ability to deal with "packages". A package is a group of
extensions that go together, either because they are from
the same manufacturer or because the extensions rely on each
other. When viewing the extensions list by package, users
can easily turn all related extensions on or off with one
click of the mouse.
Extensions Manager 4.0 provides three different ways to
view the list of extensions:
- as Folders (the view shown in the above picture)
- as Packages
- as Items.
The "as Folders" option resembles the previous Extensions
Manager's list, which separated all the extensions from all
the control panels from the System Folder items. The "as
Items" list removes the folders from the list, so you don't
have to be concerned with whether or not the item is a
control panel or an extension.
The newest and most powerful feature of Extensions
Manager 4.0 is its ability to sort extensions "as Packages".
Extensions Manager 3.0.X had a "System 7.5.X" selection in
its pop-up menu -- a built-in package of those extensions
that shipped with System 7.5.X. Extensions Manager 4.0 takes
this idea to its logical conclusion, since it allows any
vendor to define extension packages in an intuitive and
flexible manner.
Extensions Manager constructs packages by looking at the
'vers' 2 resource, which the Finder uses to
display information via the "Get Info" window, like this one
for QuickTime 2.5. Figure 2 shows an example of the Get Info
window.
Figure 2. Example of Get Info window
 (Disk 1).iso/pc/technical documentation/macintosh technotes and q&as/technotes/tn/tn1091_2.gif)
Extensions Manager uses the 'vers' resource
to not only inform the user about an extension, but also to
group extensions with the same 'vers' 2 long
version string together.
Figure 3 shows what a 'vers' resource looks
like in ResEdit.
Figure 3. ResEdit window, showing 'vers'
information
 (Disk 1).iso/pc/technical documentation/macintosh technotes and q&as/technotes/tn/tn1091_3.gif)
Extensions Manager 4.0 retrieves the version number from
the 'vers' 1 resource's short version string,
or if there is no 'vers' 1 resource, it
attempts to retrieve the version number from the short
version string of the 'vers' 2 resource.
Extensions Manager 4.0 uses the short version string to
display the version of a file in its window, and it uses the
long version string as the package identifier for each
extension. The short version string does not have to be
limited to just a number, but it should be short. To use the
package feature of Extensions Manager 4.0, the long version
string of all extensions in the same package must match
exactly.
If you are a vendor of extensions or other items which go
into the System Folder (or one of its subfolders) and you
have multiple extensions that work as a group, you can make
them into a package by simply giving all of them the same
long version string in their 'vers' 2 resource.
Extensions Manager 4.0 will treat those extensions as being
in the same package, as Figure 4 demonstrates.
Developers creating groups of extensions should package
all of those extensions into one package, even if those
extensions do not function together as a group. By doing so,
your extensions appear as a complete software package and
will be organized in a way that can be easily identified by
the user when Extensions Manager 4.0's display is in the
package mode.
Figure 4. Examples of Different Packages
 (Disk 1).iso/pc/technical documentation/macintosh technotes and q&as/technotes/tn/tn1091_4.gif)
As you can see in Figure 4, if there are two or more
items in a package, then a checkbox is shown, a special
package icon is displayed and the name of the package (taken
from the long version string in the 'vers' 2
resource) is shown in bold. The user can use the triangles
to compress or expand the view and can enable or disable
entire packages by clicking on the checkbox for the main
package (as is the case with the QuickDraw 3D v1.0.6 package
in Figure 4). The user can also disable only some items in a
package (as is the case with the Cyberdog 1.1 package in
Figure 4).
Extensions Manager 4.0 incorporates tri-state checkboxes
which let the user easily know that only some items in a
group are on, just as the Installer lets you know that only
some items in a custom install package will be installed, as
in Figure 4.
If the check box has a horizontal line through it, like
this:
Figure 5. Partially-disabled package checkbox
 (Disk 1).iso/pc/technical documentation/macintosh technotes and q&as/technotes/tn/tn1091_8.gif)
it means that one or more items in the group are not
active, as is the case of the Cyberdog 1.1 package in Figure
4.
The Item Information Window
The "Item Information" window, shown in Figure 6,
provides a place for the display of textual information
describing the facilities provided by an extension. Vendors
can provide this information by including necessary
resources in their extension files. Extensions Manager 4.0
retrieves the textual information displayed in this window
from one of four places. The search order for finding that
information is as follows:
- It first looks in resource
'CCI™' 1 128
- If that resource does not exist, it looks in an
internal Extensions Manager Info database.
- If it doesn't find a match in the database, then it
looks in the file for resource
'hfdr' -5696,
which is the Finder Balloon Help resource.
- Finally, it looks in the Finder Help file for
information about the file.
Here is an example from MacsBug's 'hfdr'
-5696 resource:
Figure 6. Item Information window
 (Disk 1).iso/pc/technical documentation/macintosh technotes and q&as/technotes/tn/tn1091_5.gif)
If no information is found in any of these places, it
displays the default information (which is the same
information that the Finder displays in Balloon Help where
there is no 'hfdr' -5696). It is a generic
message, as shown in Figure 7.
Figure 7. Generic Item Information
 (Disk 1).iso/pc/technical documentation/macintosh technotes and q&as/technotes/tn/tn1091_6.gif)
The format of the 'CCI™' (™ is the
option-2 character, hex AA) resource is exactly the same as
a 'TEXT' resource, a pure text stream with no
extraneous information. Figure 8 showns how it appears in
ResEdit.
Figure 8. ResEdit view of 'CCI™'
resource
 (Disk 1).iso/pc/technical documentation/macintosh technotes and q&as/technotes/tn/tn1091_7.gif)
The format of the 'hfdr' resource is
described in
Inside Macintosh:More Macintosh Toolbox.
Using the 'CCI™' resource allows your extension to
display useful information in Extensions Manager (i.e., what
functionality this extension provides or what other
extensions this extension requires) while allowing your
'hfdr' -5696 resource to say things like "This
must be in the Extensions folder to be active," or other
things which don't make sense when viewed in the Extensions
Manager's context.
|